package com.zw.mes.module.prodtaskmanager.controller;

import com.zw.mes.module.prodtaskmanager.service.ExternalInterfaceService;
import com.zw.mes.util.IpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

/**
 * 对外接口控制层
 *
 * @author 徐一贺
 */
@RestController
@CrossOrigin(allowCredentials = "true", maxAge = 3600)
public class ExternalInterfaceController {
    @Autowired
    private ExternalInterfaceService externalInterfaceService;
    @Value("${allowIpAddress.transition}")
    String transitionIpAddress;

//    /**
//     * @methodName: changeStatus
//     * @description: 设备类生产令根据生产令和类型修改对应类型的任务、反馈状态
//     * @param: prodNo 生产令编号
//     * @param: taskType 任务类型
//     * @param: major 专业
//     * @param: httpServletRequest
//     * @return： java.lang.String
//     * @exception：
//     * @author： 徐一贺 tel:18941916590
//     * @designer： 陈欣，盖世奇
//     * @leader： 陈欣 tel:18104194240
//     * @date： 2021/4/1 14:08
//     * @office: 智能控制设计科
//     * @research institute： 智能控制设计所
//     * @department： 机械设计院
//     * @company: 辽宁忠旺机械设备制造有限公司
//     * @group： 忠旺集团
//     * @version: 1.0
//     */
//    @PostMapping(value = "/productionOrderInterface/changeStatus")
//    public String changeStatus(@RequestParam("prodNo") String prodNo, @RequestParam("taskType") String taskType, @RequestParam("taskStatus") String taskStatus, @RequestParam("major") String major, HttpServletRequest httpServletRequest) {
//        List<String> allowAccessInterfaceIpAddressList = new ArrayList<>();
//        allowAccessInterfaceIpAddressList.add(transitionIpAddress);
//        String accessingInterfaceClientIpAddress = IpUtil.getIpAddr(httpServletRequest);
//        if (prodNo == null || prodNo.equals("")) {
//            return "生产令编号不可为空！";
//        }else if (externalInterfaceService.getProdOrdByProdNo(prodNo) == null) {
//            return "生产令编号不正确！";
//        }
//        if (taskType == null || taskType.equals("")) {
//            return "任务类型不可为空！";
//        } else if (!"机加".equals(taskType) && !"铆焊".equals(taskType) && !"装配发起".equals(taskType) && !"装配".equals(taskType)) {
//            return "任务类型不正确！";
//        } if (taskStatus == null || taskStatus.equals("")) {
//            return "任务状态不可为空！";
//        } else if (!"未开始".equals(taskStatus) && !"执行中".equals(taskStatus) && !"已完成".equals(taskStatus)) {
//            return "任务状态不正确！";
//        }
//        if(major !=null && !"机械".equals(major) && !"流体".equals(major) && !"自动化".equals(major)){
//            return "专业不正确！";
//        }
//        //如果是允许访问IP则进行下一步操作
//        if (transitionIpAddress.contains(accessingInterfaceClientIpAddress)) {
//            return externalInterfaceService.changeStatus(prodNo, taskType,taskStatus,major);
//        } else {
//            return "您无权调用此次接口。";
//        }
//    }
}
